#include <iostream>
#include <set>
#include <vector>

using namespace std;

//打印
void Print(set<int>& s) {
	for (int v : s) {
		cout << v << "\n";
	}
}


//增
void Test01() {
	set<int> s;
	s.insert(1);
	s.insert(1);
	s.insert(2);
	s.insert(3);

	Print(s);
}

//删
void Test02() {
	set<int> s;
	s.insert(1);
	s.insert(1);
	s.insert(2);
	s.insert(3);

	s.erase(1);
	Print(s);
}

//查
void Test03() {
	set<int> s;
	s.insert(1);
	s.insert(1);
	s.insert(2);
	s.insert(3);

	if(s.count(1)) {
		cout << "存在1\n";
	}else {
		cout << "不存在1\n";
	}

	if (s.count(4)) {
		cout << "存在4\n";
	}
	else {
		cout << "不存在4\n";
	}
}

//求元素个数
void Test04() {
	set<int> s;
	s.insert(1);
	s.insert(1);
	s.insert(2);
	s.insert(3);
	cout << "元素个数：" << s.size() << "\n";

}

//清空set
void Test05() {
	set<int> s;
	s.insert(1);
	s.insert(1);
	s.insert(2);
	s.insert(3);
	cout << "元素个数：" << s.size() << "\n";
	s.clear();
	cout << "元素个数：" << s.size() << "\n";

	//清空后还可以使用
	s.insert(100);
	Print(s);
}



//使用迭代器遍历(是排好序的)
void Test06() {
	set<int> s;
	s.insert(1);
	s.insert(1);
	s.insert(2);
	s.insert(3);
	for (set<int>::iterator it = s.begin(); it != s.end(); ++it) {
		cout << *it << "\n";
	}
}

//迭代器是在STL容器中是通用的，下面用迭代器遍历vector
void Test07() {
	vector<int> v = { 1, 1, 2, 3};
	for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
		cout << *it << "\n";
	}
}



/**
 * set 的基本操作
 */
int main() {
	//Test01();

	//Test02();

	Test03();

	//Test04();

	//Test05();

	//Test06();

	// Test07();
		
    return 0;
}